import request from '@/utils/request';

// 登录
export function login(data) {
  return request({
    url: '/api/auth/login',
    method: 'post',
    data
  });
}

// 企业用户注册
export function registerCompany(data) {
  console.log('发送企业注册请求:', {
    username: data.username,
    companyName: data.companyName,
    // 不记录敏感字段
  });
  
  // 创建数据的副本并删除前端专用字段
  const submitData = { ...data };
  delete submitData.confirmPassword;
  delete submitData.agreement;
  
  return request({
    url: '/api/auth/register/company',
    method: 'post',
    data: submitData,
    // 添加请求变换，详细记录错误
    transformResponse: [function(data) {
      // 如果数据是字符串，尝试解析
      if (typeof data === 'string') {
        try {
          return JSON.parse(data);
        } catch (e) {
          console.error('解析响应数据失败:', e);
          console.log('原始响应数据:', data);
          return {
            code: 500,
            message: '数据解析失败: ' + data
          };
        }
      }
      return data;
    }]
  }).catch(error => {
    // 处理特定的错误信息，如"用户名已存在"
    if (error.response && error.response.data && error.response.data.message) {
      console.error('企业注册错误:', error.response.data.message);
      // 抛出新的错误，保留原始错误信息
      throw new Error(error.response.data.message);
    }
    // 对于其他错误，直接抛出
    throw error;
  });
}

// 零工用户注册
export function registerWorker(data) {
  console.log('发送零工注册请求:', {
    username: data.username,
    // 不记录密码
    name: data.name,
    phone: data.phone,
    skillType: data.skillType,
    // 其他非敏感字段...
  });
  
  // 创建数据的副本并删除前端专用字段
  const submitData = { ...data };
  delete submitData.confirmPassword;
  delete submitData.agreement;
  
  return request({
    url: '/api/auth/register/worker',
    method: 'post',
    data: submitData,
    // 添加请求变换，详细记录错误
    transformResponse: [function(data) {
      // 如果数据是字符串，尝试解析
      if (typeof data === 'string') {
        try {
          return JSON.parse(data);
        } catch (e) {
          console.error('解析响应数据失败:', e);
          console.log('原始响应数据:', data);
          return {
            code: 500,
            message: '数据解析失败: ' + data
          };
        }
      }
      return data;
    }]
  }).catch(error => {
    // 处理特定的错误信息，如"用户名已存在"
    if (error.response && error.response.data && error.response.data.message) {
      console.error('零工注册错误:', error.response.data.message);
      // 抛出新的错误，保留原始错误信息
      throw new Error(error.response.data.message);
    }
    // 对于其他错误，直接抛出
    throw error;
  });
}

// 添加步骤验证接口
export function validateStep(data) {
  console.log('发送验证请求:', data); // 添加请求日志
  return request({
    url: '/api/auth/validate/company-register',
    method: 'post',
    data
  });
} 